package PodsumowaniaLingwistyczne;

import java.util.List;

import csvIO.CsvRow;
import Narzedzia.ListaElementow;
import PrzestrzenCiagla.ZbiorRozmytyTypu2;
import ZmiennaLingwistyczna.WartoscLingwistyczna;
import ZmiennaLingwistyczna.WartoscLingwistycznaTypu2;

public class SumaryzatorTypu2 implements ISumaryzatorTypu2{

	private WartoscLingwistycznaTypu2 wartoscLingwistyczna;
	private int indeksPolaKrotki;
	
	public SumaryzatorTypu2(WartoscLingwistycznaTypu2 wartoscLingwistyczna, int indeksPolaKrotki) {
		super();
		this.wartoscLingwistyczna = wartoscLingwistyczna;
		this.indeksPolaKrotki = indeksPolaKrotki;
	}
	
	public SumaryzatorTypu2(ISumaryzator sumaryzatorTypu1) {
		super();
		WartoscLingwistyczna wartosc = sumaryzatorTypu1.getWartoscLingwistyczna();
		ZbiorRozmytyTypu2 zbiorTypu2 = new ZbiorRozmytyTypu2(wartosc.getZbior());
		this.wartoscLingwistyczna = new WartoscLingwistycznaTypu2(wartosc.getEtykieta(), zbiorTypu2, wartosc.getModyfikator());
		this.indeksPolaKrotki = sumaryzatorTypu1.getIndeksPolaKrotki();
	}


	@Override
	public float getPrzynaleznosc(CsvRow krotka) {
		return wartoscLingwistyczna.getBazowaPrzynaleznosc(Float.parseFloat(krotka.get(indeksPolaKrotki)));
	}

	public int getIndeksPolaKrotki() {
		return indeksPolaKrotki;
	}

	@Override
	public List<ISumaryzatorTypu2> getSumaryzatorySkladowe() {
		List<ISumaryzatorTypu2> lista = new ListaElementow<ISumaryzatorTypu2>();
		lista.add(this);
		return lista;
	}

	@Override
	public WartoscLingwistycznaTypu2 getWartoscLingwistyczna() {
		return wartoscLingwistyczna;
	}
	
	public String toString(){
		return wartoscLingwistyczna.toString();
	}
}
